\part{Libraries}
\label{part-libraries}

{\Large \emph{by Till Tantau}}


\bigskip
\noindent
In this part the library packages are documented. They
provide additional predefined graphic objects like new arrow heads or
new plot marks, but sometimes also extensions of the basic \pgfname\
or \tikzname\ system. The libraries are not loaded by default since
many users will not need them.

\medskip
\noindent
\begin{codeexample}[graphic=white]
\tikzset{
  ld/.style={level distance=#1},lw/.style={line width=#1},
  level 1/.style={ld=4.5mm, trunk,          lw=1ex ,sibling angle=60},
  level 2/.style={ld=3.5mm, trunk!80!leaf a,lw=.8ex,sibling angle=56},
  level 3/.style={ld=2.75mm,trunk!60!leaf a,lw=.6ex,sibling angle=52},
  level 4/.style={ld=2mm,   trunk!40!leaf a,lw=.4ex,sibling angle=48},
  level 5/.style={ld=1mm,   trunk!20!leaf a,lw=.3ex,sibling angle=44},
  level 6/.style={ld=1.75mm,leaf a,         lw=.2ex,sibling angle=40},
}
\pgfarrowsdeclare{leaf}{leaf}
  {\pgfarrowsleftextend{-2pt} \pgfarrowsrightextend{1pt}}
{
  \pgfpathmoveto{\pgfpoint{-2pt}{0pt}}
  \pgfpatharc{150}{30}{1.8pt}
  \pgfpatharc{-30}{-150}{1.8pt}
  \pgfusepathqfill
}

\newcommand{\logo}[5]
{
  \colorlet{border}{#1}
  \colorlet{trunk}{#2}
  \colorlet{leaf a}{#3}
  \colorlet{leaf b}{#4}
  \begin{tikzpicture}
    \scriptsize\scshape
    \draw[border,line width=1ex,yshift=.3cm,
          yscale=1.45,xscale=1.05,looseness=1.42]
      (1,0) to [out=90, in=0]    (0,1)  to [out=180,in=90]  (-1,0)
            to [out=-90,in=-180] (0,-1) to [out=0,  in=-90] (1,0) -- cycle;

    \coordinate (root) [grow cyclic,rotate=90]
    child {
      child [line cap=round] foreach \a in {0,1} {
        child foreach \b in {0,1} {
          child foreach \c in {0,1} {
            child foreach \d in {0,1} {
              child foreach \leafcolor in {leaf a,leaf b}
                { edge from parent [color=\leafcolor,-#5] }
        } } }
      } edge from parent [shorten >=-1pt,serif cm-,line cap=butt]
    };

    \node [align=center,below] at (0pt,-.5ex)
    { \textcolor{border}{T}heoretical \\ \textcolor{border}{C}omputer \\
      \textcolor{border}{S}cience };
  \end{tikzpicture}
}
\begin{minipage}{3cm}
  \logo{green!80!black}{green!25!black}{green}{green!80}{leaf}\\
  \logo{green!50!black}{black}{green!80!black}{red!80!green}{leaf}\\
  \logo{red!75!black}{red!25!black}{red!75!black}{orange}{leaf}\\
  \logo{black!50}{black}{black!50}{black!25}{}
\end{minipage}
\end{codeexample}

% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-angles}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-arrows}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-automata}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-babel}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-backgrounds}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-calc}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-calendar}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-chains}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-circuits}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-decorations}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-er}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-external}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-fadings}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-fit}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-fixedpoint}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-fpu}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-lsystems}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-math}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-matrices}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-mindmaps}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-folding}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-patterns}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-petri}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-plot-handlers}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-plot-marks}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-profiler}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-shadings}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-shadows}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-shapes}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-spy}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-svg-path}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-edges}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-through}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-trees}
% \include{./text-zh/pgfmanual-zh-library/pgfmanual-zh-library-turtle}

